<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:p="http://primefaces.org/ui"
      xmlns:f="http://java.sun.com/jsf/core">

    <!-- 
        <sumario>
        <objetivo>"Rastreabilidade"</objetivo>
        <autor>EDUARDO SANTOS DE OLIVEIRA</autor>
        <versao>1.0.0.0</versao>
        <data_criacao> 06.11.2012 </data_criacao>
        <data_ultima_alteracao> N/A </data_ultima_alteracao>
        <requisito_afetado> RF001.02 - Cadastrar Usuarios </requisito_afetado>
        <descricao> Pagina de Criacao/Alteracao de Usuarios </descricao>
        </sumario>
    -->          

    <ui:composition template="/templates/interna.xhtml">

        <ui:define name="breadcrumb">

            <h:form>

                <p:breadCrumb>
                    <p:menuitem value="#{msg.principal}"/>
                    <p:menuitem value="#{msg.cadastros}"/>
                    <p:menuitem value="#{msg.subMenuTabelasBasicas}"/>
                    <p:menuitem value="#{msg.usuarios}"/>
                    <p:menuitem value="#{msg.usuarioCadastrar}" rendered="#{manterUsuario.usuario.id == null and !manterUsuario.isDetalhamento}"/>
                    <p:menuitem value="#{msg.usuarioEditar}" rendered="#{manterUsuario.usuario.id != null and !manterUsuario.isDetalhamento}"/>
                    <p:menuitem value="#{msg.usuarioDetalhar}" rendered="#{manterUsuario.isDetalhamento}"/>
                </p:breadCrumb>

            </h:form>    

        </ui:define>

        <ui:define name="corpo">

            <h:form id="fManterUsuario">

                <p:fieldset id="fsDadosEmpreendimento" legend="#{msg.usuarioDadosUsuario}" toggleable="true">
                    <h:panelGrid columns="3">
                        <h:panelGrid columns="1">
                            <p:outputLabel for="itMatricula" value="#{msg.usuarioMatricula}"/>
                            <p:inputText id="itMatricula" value="#{manterUsuario.usuario.matricula}" maxlength="8" disabled="#{manterUsuario.isDetalhamento}" style="width: 13em" onkeydown="return somenteNumero(event)" onblur="upperCase(this)"/>
                        </h:panelGrid>
                        <h:panelGrid columns="1">
                            <p:outputLabel for="itNome" value="#{msg.usuarioNome}"/>
                            <p:inputText id="itNome" value="#{manterUsuario.usuario.nome}"  maxlength="150" required="true" requiredMessage="#{msg.usuarioNome}: #{msg.campo_obrigatorio}" disabled="#{manterUsuario.isDetalhamento}" style="width: 38em" onblur="upperCase(this)"/>
                        </h:panelGrid>
                        <h:panelGrid columns="1" rendered="#{manterUsuario.usuario.id eq null or loginUsuario.possuiPrivilegio('CADASTRAR_USUARIO_ADMIN')}">
                            <p:outputLabel for="itLogin" value="#{msg.usuarioLogin}"/>
                            <p:inputText id="itLogin" value="#{manterUsuario.usuario.login}" maxlength="20" required="true" requiredMessage="#{msg.usuarioLogin}: #{msg.campo_obrigatorio}" disabled="#{manterUsuario.isDetalhamento}" style="width: 37em"/>
                        </h:panelGrid>
                    </h:panelGrid>
                    <h:panelGrid columns="5">
                        <h:panelGrid columns="1" rendered="#{manterUsuario.usuario.id eq null or loginUsuario.possuiPrivilegio('CADASTRAR_USUARIO_ADMIN')}">
                            <p:outputLabel for="itSenha" value="#{msg.usuarioSenha}"/>
                            <p:password id="itSenha" redisplay="true" value="#{manterUsuario.usuario.senha}" maxlength="32" required="true" requiredMessage="#{msg.usuarioSenha}: #{msg.campo_obrigatorio}" disabled="#{manterUsuario.isDetalhamento}" style="width: 13em"/>
                        </h:panelGrid>
                        <h:panelGrid columns="1" rendered="#{manterUsuario.usuario.id eq null or loginUsuario.possuiPrivilegio('CADASTRAR_USUARIO_ADMIN')}">
                            <p:outputLabel for="itRepetirSenha" value="#{msg.usuarioRepetirSenha}"/>
                            <p:password id="itRepetirSenha" redisplay="true" value="#{manterUsuario.campoRepitaSenha}" maxlength="32" required="true" requiredMessage="#{msg.usuarioRepetirSenha}: #{msg.campo_obrigatorio}" disabled="#{manterUsuario.isDetalhamento}" style="width: 13em"/>
                        </h:panelGrid>
                        <h:panelGrid columns="1">
                            <p:outputLabel for="somStatus" value="#{msg.usuarioStatus}"/>
                            <p:selectOneMenu id="somStatus" value="#{manterUsuario.usuario.ativo}" required="true" requiredMessage="#{msg.usuarioStatus}: #{msg.campo_obrigatorio}" disabled="#{manterUsuario.isDetalhamento}" style="width: 12em">
                                <f:selectItem itemValue="" itemLabel="#{msg.opcao_combo_selecione}"/>
                                <f:selectItem itemValue="true" itemLabel="#{msg.ativo.toUpperCase()}"/>
                                <f:selectItem itemValue="false" itemLabel="#{msg.inativo.toUpperCase()}"/>
                            </p:selectOneMenu>
                        </h:panelGrid>
                        <h:panelGrid columns="1" rendered="#{manterUsuario.usuario.id eq null or loginUsuario.possuiPrivilegio('CADASTRAR_USUARIO_ADMIN')}">
                            <p:outputLabel for="itCpf" value="#{msg.usuarioCFP}" />
                            <p:inputMask id="itCpf" value="#{manterUsuario.usuario.cpf}" mask="#{msg.mascaraCPF}" disabled="#{manterUsuario.isDetalhamento}" style="width:9.7em">
                                <f:converter for="itCpf" converterId="cpfConverter"/>
                            </p:inputMask>
                        </h:panelGrid>
                        <h:panelGrid columns="1">
                            <p:outputLabel for="itEmail" value="#{msg.usuarioEmail}"/>
                            <p:inputText id="itEmail" value="#{manterUsuario.usuario.email}" maxlength="100" required="true" requiredMessage="#{msg.usuarioEmail}: #{msg.campo_obrigatorio}" disabled="#{manterUsuario.isDetalhamento}" onblur="this.value = this.value.toLowerCase();" style="width: 37em"/>
                        </h:panelGrid>
                    </h:panelGrid>
                    <h:panelGrid columns="4">
                        <h:panelGrid columns="1">
                            <p:outputLabel for="somDiretoria" value="#{msg.usuarioDiretoria}"/>
                            <p:selectOneMenu id="somDiretoria" value="#{manterUsuario.usuario.idDiretoria}" disabled="#{manterUsuario.isDetalhamento}" style="width:26.3em">
                                <f:selectItems value="#{manterUsuario.listaDiretorias}"/>
                                <p:ajax event="change" process="@this" listener="#{manterUsuario.controlarSelecaoCampoDiretoria}" update="@this"/>
                            </p:selectOneMenu>
                        </h:panelGrid>
                        <h:panelGrid columns="1">
                            <p:outputLabel for="somSetor" value="#{msg.usuarioSetor}"/>
                            <p:selectOneMenu id="somSetor" value="#{manterUsuario.usuario.idSetor}" disabled="#{manterUsuario.isDetalhamento}" style="width:26.3em">
                                <f:selectItems value="#{manterUsuario.listaSetores}"/>
                                <p:ajax event="change" process="@this" listener="#{manterUsuario.controlarSelecaoCampoSetor}" update="@this"/>
                            </p:selectOneMenu>
                        </h:panelGrid>
                        <h:panelGrid columns="1">
                            <p:outputLabel for="somLocal" value="#{msg.usuarioLocal}"/>
                            <p:selectOneMenu id="somLocal" value="#{manterUsuario.usuario.idLocal}" disabled="#{manterUsuario.isDetalhamento}" style="width:28.5em">
                                <f:selectItems value="#{manterUsuario.listaLocais}"/>
                                <p:ajax event="change" process="@this" listener="#{manterUsuario.controlarSelecaoCampoLocal}" update="@this"/>
                            </p:selectOneMenu>
                        </h:panelGrid>
                        <h:panelGrid columns="1">
                            <p:outputLabel for="somAndar" value="#{msg.usuarioAndar}"/>
                            <p:selectOneMenu id="somAndar" value="#{manterUsuario.usuario.idAndar}" disabled="#{manterUsuario.isDetalhamento}" style="width:8em">
                                <f:selectItems value="#{manterUsuario.listaAndares}"/>
                                <p:ajax event="change" process="@this" listener="#{manterUsuario.controlarSelecaoCampoAndar}" update="@this"/>
                            </p:selectOneMenu>
                        </h:panelGrid>
                    </h:panelGrid>
                </p:fieldset>

                <div class="espacamento"/>

                <div align="left">
                    <p:commandButton value="#{msg.novo}" 
                                     icon="ui-icon-plusthick" 
                                     immediate="true"
                                     rendered="#{loginUsuario.possuiPrivilegio('CADASTRAR_USUARIO_MANTER') and manterUsuario.isDetalhamento}"
                                     action="#{manterUsuario.inicializar()}"
                                     update="@form"
                                     oncomplete="scrollToTop('global');"/>
                    <p:spacer width="5" rendered="#{loginUsuario.possuiPrivilegio('CADASTRAR_USUARIO_MANTER') and manterUsuario.isDetalhamento}"/>
                    <p:commandButton value="#{msg.editar}" 
                                     icon="ui-icon-clipboard" 
                                     immediate="true"
                                     rendered="#{loginUsuario.possuiPrivilegio('CADASTRAR_USUARIO_MANTER') and manterUsuario.isDetalhamento}"
                                     process="@this"
                                     update="@form"
                                     oncomplete="scrollToTop('global');">
                        <f:setPropertyActionListener value="false" target="#{manterUsuario.isDetalhamento}"/>
                    </p:commandButton>
                    <p:spacer width="5" rendered="#{loginUsuario.possuiPrivilegio('CADASTRAR_USUARIO_MANTER') and manterUsuario.isDetalhamento}"/>
                    <p:commandButton value="#{msg.salvar}" 
                                     icon="ui-icon-disk" 
                                     ajax="false"
                                     rendered="#{!manterUsuario.isDetalhamento}"
                                     action="#{manterUsuario.salvar}"/>
                    <p:spacer width="5" rendered="#{!manterUsuario.isDetalhamento}"/>
                    <p:commandButton value="#{msg.cancelar}" 
                                     icon="ui-icon-closethick"
                                     immediate="true"
                                     rendered="#{!manterUsuario.isDetalhamento}"
                                     onclick="pnConfirmacao.show();">
                        <f:setPropertyActionListener value="#{manterUsuario.usuario.id}" target="#{manterUsuario.idUsuarioSelecionado}"/>
                    </p:commandButton>	
                    <p:spacer width="5" rendered="#{!manterUsuario.isDetalhamento}"/>
                    <p:commandButton value="Histórico"
                                        action="#{historicoAuditoriaController.carregarHistorico(manterUsuario.usuario.id, 'Usuario')}"
                                        icon="ui-icon-calendar"
                                        immediate="true"
                                        rendered="#{manterUsuario.usuario.id ne null and manterUsuario.possuiPrivilegio('VISUALIZAR_LOGS_MOD_REGISTROS')}"
                                        onclick="painelStatus.show();"
                                        oncomplete="painelStatus.hide();dlg_historico_mod_emp.show();"
                                        update=":frm_historico_auditoria"/>

                    <p:spacer width="5" rendered="#{manterUsuario.usuario.id ne null and manterUsuario.possuiPrivilegio('VISUALIZAR_LOGS_MOD_REGISTROS')}"/>                                          
                    <p:commandButton id="btExportar"
                                     icon="ui-icon-print"
                                     value="Exportar" 
                                     immediate="true"
                                     rendered="#{manterUsuario.usuario.id ne null}">
                    </p:commandButton>	
                    <p:spacer width="5" rendered="#{manterUsuario.usuario.id ne null}"/>                                                            
                    <p:commandButton value="#{msg.voltar}" 
                                     action="#{manterUsuario.voltar}" 
                                     icon="ui-icon-arrowreturnthick-1-w"
                                     ajax="false"
                                     immediate="true"/>	
                </div>

                <p:menu overlay="true" trigger="btExportar" my="left top" at="left top">
                    <p:menuitem value="Excel" icon="excel" action="#{manterUsuario.exportarCadastroXLS()}" ajax="false" immediate="true" style="font-weight: bold"/>
                    <p:menuitem value="PDF" icon="pdf" action="#{manterUsuario.exportarCadastroPDF()}" ajax="false" immediate="true" style="font-weight: bold"/>
                </p:menu>                                                                                
                
            </h:form>
            
            <ui:include src="/restrito/auditoria/dialog_historico_auditoria.xhtml">
                <ui:param name="titulo" value="HISTÓRICO DE MODIFICAÇÕES REALIZADAS NO CADASTRO DE USUÁRIOS"/>
            </ui:include>            
            
            <ui:include src="/restrito/painel_mensagens.xhtml">
                <ui:param name="tituloPainel" value="#{manterUsuario.tituloPainel}"/>
                <ui:param name="icone" value="#{manterUsuario.tipoMensagem}"/>
                <ui:param name="mensagem" value="#{manterUsuario.mensagem}"/>
            </ui:include>            

            <ui:include src="/restrito/painel_confirmacao.xhtml">
                <ui:param name="id" value="pnConfirmacao"/>
                <ui:param name="mensagem" value="#{msg.deseja_cancelar_operacao}"/>
                <ui:param name="bean" value="#{manterUsuario}"/>
                <ui:param name="action" value="#{manterUsuario.usuario.id != null ? 'detalhar' : 'setup'}"/>
            </ui:include>

        </ui:define>

    </ui:composition>

</html>
